1,360 research outputs found

    On the Implementation of GNU Prolog

    Get PDF
    GNU Prolog is a general-purpose implementation of the Prolog language, which distinguishes itself from most other systems by being, above all else, a native-code compiler which produces standalone executables which don't rely on any byte-code emulator or meta-interpreter. Other aspects which stand out include the explicit organization of the Prolog system as a multipass compiler, where intermediate representations are materialized, in Unix compiler tradition. GNU Prolog also includes an extensible and high-performance finite domain constraint solver, integrated with the Prolog language but implemented using independent lower-level mechanisms. This article discusses the main issues involved in designing and implementing GNU Prolog: requirements, system organization, performance and portability issues as well as its position with respect to other Prolog system implementations and the ISO standardization initiative.Comment: 30 pages, 3 figures, To appear in Theory and Practice of Logic Programming (TPLP); Keywords: Prolog, logic programming system, GNU, ISO, WAM, native code compilation, Finite Domain constraint

    A Hybrid Recommender Strategy on an Expanded Content Manager in Formal Learning

    Get PDF
    The main topic of this paper is to find ways to improve learning in a formal Higher Education Area. In this environment, the teacher publishes or suggests contents that support learners in a given course, as supplement of classroom training. Generally, these materials are pre-stored and not changeable. These contents are typically published in learning management systems (the Moodle platform emerges as one of the main choices) or in sites created and maintained on the web by teachers themselves. These scenarios typically include a specific group of students (class) and a given period of time (semester or school year). Contents reutilization often needs replication and its update requires new edition and new submission by teachers. Normally, these systems do not allow learners to add new materials, or to edit existing ones. The paper presents our motivations, and some related concepts and works. We describe the concepts of sequencing and navigation in adaptive learning systems, followed by a short presentation of some of these systems. We then discuss the effects of social interaction on the learners’ choices. Finally, we refer some more related recommender systems and their applicability in supporting learning. One central idea from our proposal is that we believe that students with the same goals and with similar formal study time can benefit from contents' assessments made by learners that already have completed the same courses and have studied the same contents. We present a model for personalized recommendation of learning activities to learners in a formal learning context that considers two systems. In the extended content management system, learners can add new materials, select materials from teachers and from other learners, evaluate and define the time spent studying them. Based on learner profiles and a hybrid recommendation strategy, combining conditional and collaborative filtering, our second system will predict learning activities scores and offers adaptive and suitable sequencing learning contents to learners. We propose that similarities between learners can be based on their evaluation interests and their recent learning history. The recommender support subsystem aims to assist learners at each step suggesting one suitable ordered list of LOs, by decreasing order of relevance. The proposed model has been implemented in the Moodle Learning Management System (LMS), and we present the system’s architecture and design. We will evaluate it in a real higher education formal course and we intend to present experimental results in the near future

    Temporal Annotations for a Contextual Logic Programming Language}

    Get PDF
    In this paper we propose the combination of modularity and temporal reasoning using logic programming as common ground. Moreover, we consider that the usage of a given module is influenced by temporal constraints, i.e. modularity and temporal reasoning are strongly connected. Besides illustrative examples, we also present the operational semantics and corresponding compiler for this language

    Modularity and Temporal Reasoning: a Logic Programming Approach

    Get PDF
    Albeit temporal reasoning and modularity are very prolific fields of research in Logic Programming (LP), we find few examples of their integration. In this paper we propose the addition of temporal annotations to a modular extension of LP. Moreover, besides an illustrative example we also provide a sketch for a compiler, allowing this way for the development of applications based such language

    Modelling distributed network attacks with constraints

    Get PDF
    NeMODe is a declarative system for computer network intrusion detection, providing a declarative domain specific language for describing network intrusion signatures which can span several network packets, by stating constraints over network packets, describing relations between several packets in a declarative and expressive way. It provides several back-end detection mechanisms, all based on a constraint programming framework, to perform the detection of the desired signatures. In this work, we demonstrate how to model and perform the detection of distributed network attacks using each of the detection mechanisms provided by NeMODe, based in Gecode, adaptive search and MiniSat to perform the detection of the specific intrusions. We also use the sliding network traffic window version of the adaptive search back-end detection mechanism to simulate live network traffic and evaluate the performance of the system in conditions near to real life networks

    Integrating Temporal Annotations in a Modular Logic Language

    Get PDF
    Albeit temporal reasoning and modularity are very prolific fields of research in Logic Programming (LP) we find few examples of their integration. Moreover, in those examples, time and modularity are considered orthogonal to each other. In this paper we propose the addition of temporal annotations to a modular extension of LP such that the usage of a module is influenced by temporal conditions. Besides illustrative examples we also provide an operational semantics together with a compiler, allowing this way for the development of applications based on such language

    Solving the Quadratic Assignment Problem with Cooperative Parallel Extremal Optimization

    No full text
    International audienceSeveral real-life applications can be stated in terms of the Quadratic Assignment Problem. Finding an optimal assignment is com-putationally very difficult, for many useful instances. We address this problem using a local search technique, based on Extremal Optimization and present experimental evidence that this approach is competitive. Moreover, cooperative parallel versions of our solver improve performance so much that large and hard instances can be solved quickly

    On the Scalability of Constraint Programming on Hierarchical Multiprocessor Systems

    Get PDF
    Recent developments in computer architecture progress towards systems with large core count, which expose more parallelism to applications, creating a hierarchical setup at the node and cluster levels. To take advantage of all this parallelism, applications must carefully exploit the different levels of the system which, if ignored, may yield surprising results. This aggravates the already difficult task of parallel programming. Declarative approaches such as those based on constraints are attractive to parallel programming because they concentrate on the logic of the problem. They have been successfully applied to hard problems, which usually involve searching through large problem spaces, a computationally intensive task but with potential for parallelization. Tree search algorithms play an important role in research areas such as constraint satisfaction or optimisation, and artificial intelligence. Tree search lends itself naturally to parallelization by exploiting different branches of the tree but scalability may be harder to achieve due to the high dynamic load balancing requirements. In this paper we present a high-level declarative approach based on constraints and show how it benefits from an efficient dynamic load balancing based on work stealing targeted at large-scale. We focus on the implementation of a hierarchical work stealing scheme using a different programming model, GPI. Experimentation brought encouraging results on up to 512 cores on large instances of satisfaction and optimisation problems

    Estratégia Hibrida de Recomendações sobre um Gestor de Conteúdos Ampliado em Ensino Formal

    Get PDF
    Este artigo tem por objetivo apresentar um Modelo para Recomendação Personalizada de conteúdos de aprendizagem, baseado numa estratégia de recomendação híbrida e no perfil de cada aluno. Incluímos uma proposta para a similaridade entre alunos que reflete os seus interesses em termos das avaliações pretendidas e da proximidade das sequências de atividades de aprendizagem dos diversos alunos. Este modelo prevê, igualmente, a inclusão de novos conteúdos por parte dos alunos e a definição de relacionamentos com os conteúdos existentes. São abordadas as motivações que nos levaram à presente proposta, alguns conceitos e trabalhos relacionados, assim como a arquitetura e desenho da solução, entretanto alvo de protótipo. Por fim são tecidas algumas conclusões
    corecore